package com.he.hsdyc.designmodule.state;

public class Test {

    public static void main(String[] args) {

        //状态模式适用于有多种状态，并且每种状态都有几种操作可以选择
        //FreeState,BookState,CheckinState其实都相当于一个一级条件的判断，里面的每个方法其实相当于一个二级判断
        //一般会有两个状态作比较，一个是当前状态（可以从数据库查询）
        //一个是要更改的状态



        //不使用设计模式--多重if条件判断
        String currentState = "free";//当前状态
        String wantState = "Book";//想要更改的状态
        if(currentState.equals("free")) {//空闲状态
            if(wantState.equals("free")) {
                System.out.println("已经是空闲状态");
            }else if(wantState.equals("Book")) {
                currentState = "Book";
            }else if (wantState.equals("checkin")) {
                currentState = "checkin";
            }else {
                System.out.println("空闲状态无法更改为退房状态");
            }
        }else if(currentState.equals("Book")) {//预定状态

        }else {//入住状态

        }





        //使用设计模式---代码精简很多
        Room room = new Room();
        room.setRoomNum("9521");

        room.setState(new FreeState());
        room.bookRoom();
    }

}
